package com.wu.framework.inner.lazy.example.domain.entity;

import lombok.Data;
import lombok.experimental.Accessors;
import com.wu.framework.inner.lazy.stereotype.LazyTableIndex;
import com.wu.framework.inner.layer.stereotype.LayerField.LayerFieldType;
import com.wu.framework.inner.lazy.stereotype.LazyTable;
import com.wu.framework.inner.lazy.stereotype.LazyTableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.lang.String;
import java.time.LocalDateTime;
import com.wu.framework.inner.lazy.stereotype.LazyTableFieldId;
import java.lang.Integer;
/**
 * describe Dataway 中的API 
 *
 * @author Jia wei Wu
 * @date 2023/08/10 09:49 上午
 **/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "interface_info",schema = "dataway",comment = "Dataway 中的API")
@ApiModel(value = "interface_info",description = "Dataway 中的API")
public class InterfaceInfo {

    /**
     * 
     * 注释
     */
    @ApiModelProperty(value ="注释",name ="apiComment",example = "")
    @LazyTableField(name="api_comment",comment="注释",columnType="varchar(255)")
    private String apiComment;

    /**
     * 
     * 创建时间
     */
    @ApiModelProperty(value ="创建时间",name ="apiCreateTime",example = "")
    @LazyTableField(name="api_create_time",comment="创建时间",defaultValue="CURRENT_TIMESTAMP",columnType="datetime",extra="")
    private LocalDateTime apiCreateTime;

    /**
     * 
     * 修改时间
     */
    @ApiModelProperty(value ="修改时间",name ="apiGmtTime",example = "")
    @LazyTableField(name="api_gmt_time",comment="修改时间",defaultValue="CURRENT_TIMESTAMP",columnType="datetime",extra="")
    private LocalDateTime apiGmtTime;

    /**
     * 
     * ID
     */
    @ApiModelProperty(value ="ID",name ="apiId",example = "")
    @LazyTableFieldId(name = "api_id", comment = "ID")
    private Integer apiId;

    /**
     * 
     * HttpMethod：GET、PUT、POST
     */
    @ApiModelProperty(value ="HttpMethod：GET、PUT、POST",name ="apiMethod",example = "")
    @LazyTableField(name="api_method",comment="HttpMethod：GET、PUT、POST",notNull=true,columnType="varchar(12)")
    private String apiMethod;

    /**
     * 
     * 拦截路径
     */
    @ApiModelProperty(value ="拦截路径",name ="apiPath",example = "")
    @LazyTableField(name="api_path",comment="拦截路径",notNull=true,columnType="varchar(512)")
    private String apiPath;

    /**
     * 
     * 请求/响应/请求头样本数据
     */
    @ApiModelProperty(value ="请求/响应/请求头样本数据",name ="apiSample",example = "")
    @LazyTableField(name="api_sample",comment="请求/响应/请求头样本数据",columnType="mediumtext")
    private String apiSample;

    /**
     * 
     * 接口的请求/响应数据结构
     */
    @ApiModelProperty(value ="接口的请求/响应数据结构",name ="apiSchema",example = "")
    @LazyTableField(name="api_schema",comment="接口的请求/响应数据结构",columnType="mediumtext")
    private String apiSchema;

    /**
     * 
     * 查询脚本：xxxxxxx
     */
    @ApiModelProperty(value ="查询脚本：xxxxxxx",name ="apiScript",example = "")
    @LazyTableField(name="api_script",comment="查询脚本：xxxxxxx",notNull=true,columnType="mediumtext")
    private String apiScript;

    /**
     * 
     * 状态：0草稿，1发布，2有变更，3禁用
     */
    @ApiModelProperty(value ="状态：0草稿，1发布，2有变更，3禁用",name ="apiStatus",example = "")
    @LazyTableField(name="api_status",comment="状态：0草稿，1发布，2有变更，3禁用",notNull=true,columnType="int")
    private Integer apiStatus;

    /**
     * 
     * 脚本类型：SQL、DataQL
     */
    @ApiModelProperty(value ="脚本类型：SQL、DataQL",name ="apiType",example = "")
    @LazyTableField(name="api_type",comment="脚本类型：SQL、DataQL",notNull=true,columnType="varchar(24)")
    private String apiType;
}